% Author: Christian Lillini
% Date: 13/10/2011
% Progetto: Forza 4
% File: Verifica la vittoria di uno dei giocatori
          
%Analisi tavolo per determinare la presenza di una vittoria
analizza(Tavolo,Vincitore):-orizzontale(Tavolo,Vincitore),!.
analizza(Tavolo,Vincitore):-verticale(Tavolo,Vincitore),!.
analizza(Tavolo,Vincitore):-diagonale(Tavolo,Vincitore).

%Analisi vittoria in orizzontale
orizzontale(Tavolo,Vincitore):-gettone(Vincitore),
                               member(cella(X1,Y1,Vincitore),Tavolo),
                               X2 is X1+1,
                               member(cella(X2,Y1,Vincitore),Tavolo),
                               X3 is X2+1,
                               member(cella(X3,Y1,Vincitore),Tavolo),
                               X4 is X3+1,
                               member(cella(X4,Y1,Vincitore),Tavolo).

%Analisi vittoria in verticale
verticale(Tavolo,Vincitore):-gettone(Vincitore),
                             member(cella(X1,Y1,Vincitore),Tavolo),
                             Y2 is Y1+1,
                             member(cella(X1,Y2,Vincitore),Tavolo),
                             Y3 is Y2+1,
                             member(cella(X1,Y3,Vincitore),Tavolo),
                             Y4 is Y3+1,
                             member(cella(X1,Y4,Vincitore),Tavolo).
                             
%Analisi vittoria in diagonale
diagonale(Tavolo,Vincitore):-gettone(Vincitore),
                             member(cella(X1,Y1,Vincitore),Tavolo),
                             X2 is X1+1,
                             Y2 is Y1+1,
                             member(cella(X2,Y2,Vincitore),Tavolo),
                             X3 is X2+1,
                             Y3 is Y2+1,
                             member(cella(X3,Y3,Vincitore),Tavolo),
                             X4 is X3+1,
                             Y4 is Y3+1,
                             member(cella(X4,Y4,Vincitore),Tavolo).
diagonale(Tavolo,Vincitore):-gettone(Vincitore),
                             member(cella(X1,Y1,Vincitore),Tavolo),
                             X2 is X1+1,
                             Y2 is Y1-1,
                             member(cella(X2,Y2,Vincitore),Tavolo),
                             X3 is X2+1,
                             Y3 is Y2-1,
                             member(cella(X3,Y3,Vincitore),Tavolo),
                             X4 is X3+1,
                             Y4 is Y3-1,
                             member(cella(X4,Y4,Vincitore),Tavolo).
                               


